home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / news / inn1.000 / inn1.4sec-linux-src.tar / inn / nnrpd / nnrpd.h < prev    next >
C/C++ Source or Header  |  1993-03-18  |  3KB  |  156 lines

  1. /*  $Revision: 1.15 $
  2. **
  3. **  Net News Reading Protocol server.
  4. */
  5. #include "configdata.h"
  6. #include <stdio.h>
  7. #include <sys/types.h>
  8. #include <sys/stat.h>
  9. #include <errno.h>
  10. #include <ctype.h>
  11. #include <sys/file.h>
  12. #if    defined(VAR_VARARGS)
  13. #include <varargs.h>
  14. #endif    /* defined(VAR_VARARGS) */
  15. #if    defined(VAR_STDARGS)
  16. #include <stdarg.h>
  17. #endif    /* defined(VAR_STDARGS) */
  18. #include <syslog.h>
  19. #include <fcntl.h>
  20. #include <sys/socket.h>
  21. #include <netinet/in.h>
  22. #include "paths.h"
  23. #include "nntp.h"
  24. #include "logging.h"
  25. #include "libinn.h"
  26. #include "clibrary.h"
  27. #include "qio.h"
  28. #include "macros.h"
  29.  
  30.  
  31. /*
  32. **  Maximum input line length, sigh.
  33. */
  34. #define ART_LINE_LENGTH        1000
  35. #define ART_LINE_MALLOC        1024
  36.  
  37.  
  38. /*
  39. **  Some convenient shorthands.
  40. */
  41. typedef struct in_addr    INADDR;
  42. #define Printf        (void)printf
  43. #if    defined(VAR_NONE)
  44. #define Reply        (void)printf
  45. #endif    /* defined(VAR_NONE) */
  46.  
  47.  
  48. /*
  49. **  The XTHREAD command is too ugly to talk about, but if you want it
  50. **  change DONT_DO_XTRHEAD to DO_DO_XTRHEAD, below.
  51. */
  52. #define DONT_DO_XTHREAD
  53. #define THREAD_NAMES_FLAT
  54. #define THREAD_SUFFIX        ""
  55. #define THREAD_DB        "/usr/spool/news/trn.threads/db.init"
  56. #define THREAD_DIR        "/usr/spool/news/trn.threads"
  57. #define THREAD_NNTP_CODE    288
  58.  
  59.  
  60. /*
  61. **  A group entry.
  62. */
  63. typedef struct _GROUPENTRY {
  64.     char    *Name;
  65.     ARTNUM    High;
  66.     ARTNUM    Low;
  67.     char    Flag;
  68.     char    *Alias;
  69. } GROUPENTRY;
  70.  
  71.  
  72. /*
  73. **  A range of article numbers.
  74. */
  75. typedef struct _ARTRANGE {
  76.     int        Low;
  77.     int        High;
  78. } ARTRANGE;
  79.  
  80.  
  81. /*
  82. **  What READline returns.
  83. */
  84. typedef enum _READTYPE {
  85.     RTeof,
  86.     RTok,
  87.     RTlong,
  88.     RTtimeout
  89. } READTYPE;
  90.  
  91.  
  92. #if    defined(MAINLINE)
  93. #define EXTERN    /* NULL */
  94. #else
  95. #define EXTERN    extern
  96. #endif    /* defined(MAINLINE) */
  97.  
  98. EXTERN BOOL    PERMauthorized;
  99. EXTERN BOOL    PERMcanpost;
  100. EXTERN BOOL    PERMcanread;
  101. EXTERN BOOL    PERMneedauth;
  102. EXTERN BOOL    PERMspecified;
  103. EXTERN BOOL    Tracing;
  104. EXTERN char    **PERMlist;
  105. EXTERN STRING    MyHostName;
  106. extern char    ACTIVE[];
  107. EXTERN char    ClientHost[SMBUF];
  108. extern char    ACTIVETIMES[];
  109. extern char    HISTORY[];
  110. extern char    NEWSGROUPS[];
  111. extern char    NOACCESS[];
  112. EXTERN char    PERMpass[20];
  113. EXTERN char    PERMuser[20];
  114. EXTERN char    *RemoteMaster;
  115. EXTERN ARTNUM    *ARTcache;
  116. EXTERN ARTNUM    *ARTnumbers;
  117. EXTERN int    ARTindex;
  118. EXTERN int    ARTsize;
  119. extern int    PERMdefault;
  120. EXTERN long    ARTcount;
  121. EXTERN long    GRParticles;
  122. EXTERN long    GRPcount;
  123. EXTERN char    GRPlast[SPOOLNAMEBUFF];
  124. EXTERN long    POSTreceived;
  125. EXTERN long    POSTrejected;
  126.  
  127.  
  128. #if    NNRP_LOADLIMIT > 0
  129. extern int        GetLoadAverage();
  130. #endif    /* NNRP_LOADLIMIT > 0 */
  131. extern STRING        ARTpost();
  132. extern void        ARTclose();
  133. extern void        ARTreadschema();
  134. extern char        *Glom();
  135. extern int        Argify();
  136. extern void        ExitWithStats();
  137. extern BOOL        GetGroupList();
  138. extern void        GRPreport();
  139. extern GROUPENTRY    *GRPfind();
  140. extern char        *HISgetent();
  141. extern long        LOCALtoGMT();
  142. extern BOOL        NGgetlist();
  143. extern long        NNTPtoGMT();
  144. extern BOOL        PERMartok();
  145. extern BOOL        PERMinfile();
  146. extern BOOL        PERMmatch();
  147. extern BOOL        ParseDistlist();
  148. extern READTYPE        READline();
  149. extern void        OVERclose();
  150. #if    defined(VAR_STDARGS)
  151. extern void        Reply(char *, ...);
  152. #endif    /* defined(VAR_STDARGS) */
  153. #if    defined(VAR_VARARGS)
  154. extern void        Reply();
  155. #endif    /* defined(VAR_VARARGS) */
  156.